package cc.wsyw126.java.jvm;

/**
 * Created by junpeng.yang on 17/3/9.
 * 虚拟机栈和本地方法栈溢出
 * <p>
 * !!!!!注意!!!!!
 * 运行该代码可能造成系统假死！！！！
 * <p>
 * VM Args：-Xss2M（可以适当大一点）
 */

public class JavaVMStackOOM {
    private void dontStop() {
        while (true) {

        }
    }

    // 多线程方式造成栈内存溢出 OutOfMemoryError
    public void stackLeakByThread() {
        while (true) {
            Thread thread = new Thread(new Runnable() {
                @Override
                public void run() {
                    dontStop();
                }
            });
            thread.start();
        }
    }

    public static void main(String[] args) {
        JavaVMStackOOM oom = new JavaVMStackOOM();
        oom.stackLeakByThread();
    }
}
